/* SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright(c) 2022 Intel Corporation. All rights reserved.
 *
 */

/* Twiddle factors in Q1.31 format */

#ifndef __INCLUDE_TWIDDLE_32_H__
#define __INCLUDE_TWIDDLE_32_H__

#include <stdint.h>

#define FFT_SIZE_MAX	1024

/* in Q1.31, generated from cos(i * 2 * pi / FFT_SIZE_MAX) */
const int32_t twiddle_real_32[FFT_SIZE_MAX] = {
	2147483647,
	2147443222,
	2147321946,
	2147119825,
	2146836866,
	2146473080,
	2146028480,
	2145503083,
	2144896910,
	2144209982,
	2143442326,
	2142593971,
	2141664948,
	2140655293,
	2139565043,
	2138394240,
	2137142927,
	2135811153,
	2134398966,
	2132906420,
	2131333572,
	2129680480,
	2127947206,
	2126133817,
	2124240380,
	2122266967,
	2120213651,
	2118080511,
	2115867626,
	2113575080,
	2111202959,
	2108751352,
	2106220352,
	2103610054,
	2100920556,
	2098151960,
	2095304370,
	2092377892,
	2089372638,
	2086288720,
	2083126254,
	2079885360,
	2076566160,
	2073168777,
	2069693342,
	2066139983,
	2062508835,
	2058800036,
	2055013723,
	2051150040,
	2047209133,
	2043191150,
	2039096241,
	2034924562,
	2030676269,
	2026351522,
	2021950484,
	2017473321,
	2012920201,
	2008291295,
	2003586779,
	1998806829,
	1993951625,
	1989021350,
	1984016189,
	1978936331,
	1973781967,
	1968553292,
	1963250501,
	1957873796,
	1952423377,
	1946899451,
	1941302225,
	1935631910,
	1929888720,
	1924072871,
	1918184581,
	1912224073,
	1906191570,
	1900087301,
	1893911494,
	1887664383,
	1881346202,
	1874957189,
	1868497586,
	1861967634,
	1855367581,
	1848697674,
	1841958164,
	1835149306,
	1828271356,
	1821324572,
	1814309216,
	1807225553,
	1800073849,
	1792854372,
	1785567396,
	1778213194,
	1770792044,
	1763304224,
	1755750017,
	1748129707,
	1740443581,
	1732691928,
	1724875040,
	1716993211,
	1709046739,
	1701035922,
	1692961062,
	1684822463,
	1676620432,
	1668355276,
	1660027308,
	1651636841,
	1643184191,
	1634669676,
	1626093616,
	1617456335,
	1608758157,
	1599999411,
	1591180426,
	1582301533,
	1573363068,
	1564365367,
	1555308768,
	1546193612,
	1537020244,
	1527789007,
	1518500250,
	1509154322,
	1499751576,
	1490292364,
	1480777044,
	1471205974,
	1461579514,
	1451898025,
	1442161874,
	1432371426,
	1422527051,
	1412629117,
	1402678000,
	1392674072,
	1382617710,
	1372509294,
	1362349204,
	1352137822,
	1341875533,
	1331562723,
	1321199781,
	1310787095,
	1300325060,
	1289814068,
	1279254516,
	1268646800,
	1257991320,
	1247288478,
	1236538675,
	1225742318,
	1214899813,
	1204011567,
	1193077991,
	1182099496,
	1171076495,
	1160009405,
	1148898640,
	1137744621,
	1126547765,
	1115308496,
	1104027237,
	1092704411,
	1081340445,
	1069935768,
	1058490808,
	1047005996,
	1035481766,
	1023918550,
	1012316784,
	1000676905,
	988999351,
	977284562,
	965532978,
	953745043,
	941921200,
	930061894,
	918167572,
	906238681,
	894275671,
	882278992,
	870249095,
	858186435,
	846091463,
	833964638,
	821806413,
	809617249,
	797397602,
	785147934,
	772868706,
	760560380,
	748223418,
	735858287,
	723465451,
	711045377,
	698598533,
	686125387,
	673626408,
	661102068,
	648552838,
	635979190,
	623381598,
	610760536,
	598116479,
	585449903,
	572761285,
	560051104,
	547319836,
	534567963,
	521795963,
	509004318,
	496193509,
	483364019,
	470516330,
	457650927,
	444768294,
	431868915,
	418953276,
	406021865,
	393075166,
	380113669,
	367137861,
	354148230,
	341145265,
	328129457,
	315101295,
	302061269,
	289009871,
	275947592,
	262874923,
	249792358,
	236700388,
	223599506,
	210490206,
	197372981,
	184248325,
	171116733,
	157978697,
	144834714,
	131685278,
	118530885,
	105372028,
	92209205,
	79042909,
	65873638,
	52701887,
	39528151,
	26352928,
	13176712,
	0,
	-13176712,
	-26352928,
	-39528151,
	-52701887,
	-65873638,
	-79042909,
	-92209205,
	-105372028,
	-118530885,
	-131685278,
	-144834714,
	-157978697,
	-171116733,
	-184248325,
	-197372981,
	-210490206,
	-223599506,
	-236700388,
	-249792358,
	-262874923,
	-275947592,
	-289009871,
	-302061269,
	-315101295,
	-328129457,
	-341145265,
	-354148230,
	-367137861,
	-380113669,
	-393075166,
	-406021865,
	-418953276,
	-431868915,
	-444768294,
	-457650927,
	-470516330,
	-483364019,
	-496193509,
	-509004318,
	-521795963,
	-534567963,
	-547319836,
	-560051104,
	-572761285,
	-585449903,
	-598116479,
	-610760536,
	-623381598,
	-635979190,
	-648552838,
	-661102068,
	-673626408,
	-686125387,
	-698598533,
	-711045377,
	-723465451,
	-735858287,
	-748223418,
	-760560380,
	-772868706,
	-785147934,
	-797397602,
	-809617249,
	-821806413,
	-833964638,
	-846091463,
	-858186435,
	-870249095,
	-882278992,
	-894275671,
	-906238681,
	-918167572,
	-930061894,
	-941921200,
	-953745043,
	-965532978,
	-977284562,
	-988999351,
	-1000676905,
	-1012316784,
	-1023918550,
	-1035481766,
	-1047005996,
	-1058490808,
	-1069935768,
	-1081340445,
	-1092704411,
	-1104027237,
	-1115308496,
	-1126547765,
	-1137744621,
	-1148898640,
	-1160009405,
	-1171076495,
	-1182099496,
	-1193077991,
	-1204011567,
	-1214899813,
	-1225742318,
	-1236538675,
	-1247288478,
	-1257991320,
	-1268646800,
	-1279254516,
	-1289814068,
	-1300325060,
	-1310787095,
	-1321199781,
	-1331562723,
	-1341875533,
	-1352137822,
	-1362349204,
	-1372509294,
	-1382617710,
	-1392674072,
	-1402678000,
	-1412629117,
	-1422527051,
	-1432371426,
	-1442161874,
	-1451898025,
	-1461579514,
	-1471205974,
	-1480777044,
	-1490292364,
	-1499751576,
	-1509154322,
	-1518500250,
	-1527789007,
	-1537020244,
	-1546193612,
	-1555308768,
	-1564365367,
	-1573363068,
	-1582301533,
	-1591180426,
	-1599999411,
	-1608758157,
	-1617456335,
	-1626093616,
	-1634669676,
	-1643184191,
	-1651636841,
	-1660027308,
	-1668355276,
	-1676620432,
	-1684822463,
	-1692961062,
	-1701035922,
	-1709046739,
	-1716993211,
	-1724875040,
	-1732691928,
	-1740443581,
	-1748129707,
	-1755750017,
	-1763304224,
	-1770792044,
	-1778213194,
	-1785567396,
	-1792854372,
	-1800073849,
	-1807225553,
	-1814309216,
	-1821324572,
	-1828271356,
	-1835149306,
	-1841958164,
	-1848697674,
	-1855367581,
	-1861967634,
	-1868497586,
	-1874957189,
	-1881346202,
	-1887664383,
	-1893911494,
	-1900087301,
	-1906191570,
	-1912224073,
	-1918184581,
	-1924072871,
	-1929888720,
	-1935631910,
	-1941302225,
	-1946899451,
	-1952423377,
	-1957873796,
	-1963250501,
	-1968553292,
	-1973781967,
	-1978936331,
	-1984016189,
	-1989021350,
	-1993951625,
	-1998806829,
	-2003586779,
	-2008291295,
	-2012920201,
	-2017473321,
	-2021950484,
	-2026351522,
	-2030676269,
	-2034924562,
	-2039096241,
	-2043191150,
	-2047209133,
	-2051150040,
	-2055013723,
	-2058800036,
	-2062508835,
	-2066139983,
	-2069693342,
	-2073168777,
	-2076566160,
	-2079885360,
	-2083126254,
	-2086288720,
	-2089372638,
	-2092377892,
	-2095304370,
	-2098151960,
	-2100920556,
	-2103610054,
	-2106220352,
	-2108751352,
	-2111202959,
	-2113575080,
	-2115867626,
	-2118080511,
	-2120213651,
	-2122266967,
	-2124240380,
	-2126133817,
	-2127947206,
	-2129680480,
	-2131333572,
	-2132906420,
	-2134398966,
	-2135811153,
	-2137142927,
	-2138394240,
	-2139565043,
	-2140655293,
	-2141664948,
	-2142593971,
	-2143442326,
	-2144209982,
	-2144896910,
	-2145503083,
	-2146028480,
	-2146473080,
	-2146836866,
	-2147119825,
	-2147321946,
	-2147443222,
	-2147483647,
	-2147443222,
	-2147321946,
	-2147119825,
	-2146836866,
	-2146473080,
	-2146028480,
	-2145503083,
	-2144896910,
	-2144209982,
	-2143442326,
	-2142593971,
	-2141664948,
	-2140655293,
	-2139565043,
	-2138394240,
	-2137142927,
	-2135811153,
	-2134398966,
	-2132906420,
	-2131333572,
	-2129680480,
	-2127947206,
	-2126133817,
	-2124240380,
	-2122266967,
	-2120213651,
	-2118080511,
	-2115867626,
	-2113575080,
	-2111202959,
	-2108751352,
	-2106220352,
	-2103610054,
	-2100920556,
	-2098151960,
	-2095304370,
	-2092377892,
	-2089372638,
	-2086288720,
	-2083126254,
	-2079885360,
	-2076566160,
	-2073168777,
	-2069693342,
	-2066139983,
	-2062508835,
	-2058800036,
	-2055013723,
	-2051150040,
	-2047209133,
	-2043191150,
	-2039096241,
	-2034924562,
	-2030676269,
	-2026351522,
	-2021950484,
	-2017473321,
	-2012920201,
	-2008291295,
	-2003586779,
	-1998806829,
	-1993951625,
	-1989021350,
	-1984016189,
	-1978936331,
	-1973781967,
	-1968553292,
	-1963250501,
	-1957873796,
	-1952423377,
	-1946899451,
	-1941302225,
	-1935631910,
	-1929888720,
	-1924072871,
	-1918184581,
	-1912224073,
	-1906191570,
	-1900087301,
	-1893911494,
	-1887664383,
	-1881346202,
	-1874957189,
	-1868497586,
	-1861967634,
	-1855367581,
	-1848697674,
	-1841958164,
	-1835149306,
	-1828271356,
	-1821324572,
	-1814309216,
	-1807225553,
	-1800073849,
	-1792854372,
	-1785567396,
	-1778213194,
	-1770792044,
	-1763304224,
	-1755750017,
	-1748129707,
	-1740443581,
	-1732691928,
	-1724875040,
	-1716993211,
	-1709046739,
	-1701035922,
	-1692961062,
	-1684822463,
	-1676620432,
	-1668355276,
	-1660027308,
	-1651636841,
	-1643184191,
	-1634669676,
	-1626093616,
	-1617456335,
	-1608758157,
	-1599999411,
	-1591180426,
	-1582301533,
	-1573363068,
	-1564365367,
	-1555308768,
	-1546193612,
	-1537020244,
	-1527789007,
	-1518500250,
	-1509154322,
	-1499751576,
	-1490292364,
	-1480777044,
	-1471205974,
	-1461579514,
	-1451898025,
	-1442161874,
	-1432371426,
	-1422527051,
	-1412629117,
	-1402678000,
	-1392674072,
	-1382617710,
	-1372509294,
	-1362349204,
	-1352137822,
	-1341875533,
	-1331562723,
	-1321199781,
	-1310787095,
	-1300325060,
	-1289814068,
	-1279254516,
	-1268646800,
	-1257991320,
	-1247288478,
	-1236538675,
	-1225742318,
	-1214899813,
	-1204011567,
	-1193077991,
	-1182099496,
	-1171076495,
	-1160009405,
	-1148898640,
	-1137744621,
	-1126547765,
	-1115308496,
	-1104027237,
	-1092704411,
	-1081340445,
	-1069935768,
	-1058490808,
	-1047005996,
	-1035481766,
	-1023918550,
	-1012316784,
	-1000676905,
	-988999351,
	-977284562,
	-965532978,
	-953745043,
	-941921200,
	-930061894,
	-918167572,
	-906238681,
	-894275671,
	-882278992,
	-870249095,
	-858186435,
	-846091463,
	-833964638,
	-821806413,
	-809617249,
	-797397602,
	-785147934,
	-772868706,
	-760560380,
	-748223418,
	-735858287,
	-723465451,
	-711045377,
	-698598533,
	-686125387,
	-673626408,
	-661102068,
	-648552838,
	-635979190,
	-623381598,
	-610760536,
	-598116479,
	-585449903,
	-572761285,
	-560051104,
	-547319836,
	-534567963,
	-521795963,
	-509004318,
	-496193509,
	-483364019,
	-470516330,
	-457650927,
	-444768294,
	-431868915,
	-418953276,
	-406021865,
	-393075166,
	-380113669,
	-367137861,
	-354148230,
	-341145265,
	-328129457,
	-315101295,
	-302061269,
	-289009871,
	-275947592,
	-262874923,
	-249792358,
	-236700388,
	-223599506,
	-210490206,
	-197372981,
	-184248325,
	-171116733,
	-157978697,
	-144834714,
	-131685278,
	-118530885,
	-105372028,
	-92209205,
	-79042909,
	-65873638,
	-52701887,
	-39528151,
	-26352928,
	-13176712,
	0,
	13176712,
	26352928,
	39528151,
	52701887,
	65873638,
	79042909,
	92209205,
	105372028,
	118530885,
	131685278,
	144834714,
	157978697,
	171116733,
	184248325,
	197372981,
	210490206,
	223599506,
	236700388,
	249792358,
	262874923,
	275947592,
	289009871,
	302061269,
	315101295,
	328129457,
	341145265,
	354148230,
	367137861,
	380113669,
	393075166,
	406021865,
	418953276,
	431868915,
	444768294,
	457650927,
	470516330,
	483364019,
	496193509,
	509004318,
	521795963,
	534567963,
	547319836,
	560051104,
	572761285,
	585449903,
	598116479,
	610760536,
	623381598,
	635979190,
	648552838,
	661102068,
	673626408,
	686125387,
	698598533,
	711045377,
	723465451,
	735858287,
	748223418,
	760560380,
	772868706,
	785147934,
	797397602,
	809617249,
	821806413,
	833964638,
	846091463,
	858186435,
	870249095,
	882278992,
	894275671,
	906238681,
	918167572,
	930061894,
	941921200,
	953745043,
	965532978,
	977284562,
	988999351,
	1000676905,
	1012316784,
	1023918550,
	1035481766,
	1047005996,
	1058490808,
	1069935768,
	1081340445,
	1092704411,
	1104027237,
	1115308496,
	1126547765,
	1137744621,
	1148898640,
	1160009405,
	1171076495,
	1182099496,
	1193077991,
	1204011567,
	1214899813,
	1225742318,
	1236538675,
	1247288478,
	1257991320,
	1268646800,
	1279254516,
	1289814068,
	1300325060,
	1310787095,
	1321199781,
	1331562723,
	1341875533,
	1352137822,
	1362349204,
	1372509294,
	1382617710,
	1392674072,
	1402678000,
	1412629117,
	1422527051,
	1432371426,
	1442161874,
	1451898025,
	1461579514,
	1471205974,
	1480777044,
	1490292364,
	1499751576,
	1509154322,
	1518500250,
	1527789007,
	1537020244,
	1546193612,
	1555308768,
	1564365367,
	1573363068,
	1582301533,
	1591180426,
	1599999411,
	1608758157,
	1617456335,
	1626093616,
	1634669676,
	1643184191,
	1651636841,
	1660027308,
	1668355276,
	1676620432,
	1684822463,
	1692961062,
	1701035922,
	1709046739,
	1716993211,
	1724875040,
	1732691928,
	1740443581,
	1748129707,
	1755750017,
	1763304224,
	1770792044,
	1778213194,
	1785567396,
	1792854372,
	1800073849,
	1807225553,
	1814309216,
	1821324572,
	1828271356,
	1835149306,
	1841958164,
	1848697674,
	1855367581,
	1861967634,
	1868497586,
	1874957189,
	1881346202,
	1887664383,
	1893911494,
	1900087301,
	1906191570,
	1912224073,
	1918184581,
	1924072871,
	1929888720,
	1935631910,
	1941302225,
	1946899451,
	1952423377,
	1957873796,
	1963250501,
	1968553292,
	1973781967,
	1978936331,
	1984016189,
	1989021350,
	1993951625,
	1998806829,
	2003586779,
	2008291295,
	2012920201,
	2017473321,
	2021950484,
	2026351522,
	2030676269,
	2034924562,
	2039096241,
	2043191150,
	2047209133,
	2051150040,
	2055013723,
	2058800036,
	2062508835,
	2066139983,
	2069693342,
	2073168777,
	2076566160,
	2079885360,
	2083126254,
	2086288720,
	2089372638,
	2092377892,
	2095304370,
	2098151960,
	2100920556,
	2103610054,
	2106220352,
	2108751352,
	2111202959,
	2113575080,
	2115867626,
	2118080511,
	2120213651,
	2122266967,
	2124240380,
	2126133817,
	2127947206,
	2129680480,
	2131333572,
	2132906420,
	2134398966,
	2135811153,
	2137142927,
	2138394240,
	2139565043,
	2140655293,
	2141664948,
	2142593971,
	2143442326,
	2144209982,
	2144896910,
	2145503083,
	2146028480,
	2146473080,
	2146836866,
	2147119825,
	2147321946,
	2147443222,
};

/* in Q1.31, generated from sin(i * 2 * pi / FFT_SIZE_MAX) */
const int32_t twiddle_imag_32[FFT_SIZE_MAX] = {
	0,
	-13176712,
	-26352928,
	-39528151,
	-52701887,
	-65873638,
	-79042909,
	-92209205,
	-105372028,
	-118530885,
	-131685278,
	-144834714,
	-157978697,
	-171116733,
	-184248325,
	-197372981,
	-210490206,
	-223599506,
	-236700388,
	-249792358,
	-262874923,
	-275947592,
	-289009871,
	-302061269,
	-315101295,
	-328129457,
	-341145265,
	-354148230,
	-367137861,
	-380113669,
	-393075166,
	-406021865,
	-418953276,
	-431868915,
	-444768294,
	-457650927,
	-470516330,
	-483364019,
	-496193509,
	-509004318,
	-521795963,
	-534567963,
	-547319836,
	-560051104,
	-572761285,
	-585449903,
	-598116479,
	-610760536,
	-623381598,
	-635979190,
	-648552838,
	-661102068,
	-673626408,
	-686125387,
	-698598533,
	-711045377,
	-723465451,
	-735858287,
	-748223418,
	-760560380,
	-772868706,
	-785147934,
	-797397602,
	-809617249,
	-821806413,
	-833964638,
	-846091463,
	-858186435,
	-870249095,
	-882278992,
	-894275671,
	-906238681,
	-918167572,
	-930061894,
	-941921200,
	-953745043,
	-965532978,
	-977284562,
	-988999351,
	-1000676905,
	-1012316784,
	-1023918550,
	-1035481766,
	-1047005996,
	-1058490808,
	-1069935768,
	-1081340445,
	-1092704411,
	-1104027237,
	-1115308496,
	-1126547765,
	-1137744621,
	-1148898640,
	-1160009405,
	-1171076495,
	-1182099496,
	-1193077991,
	-1204011567,
	-1214899813,
	-1225742318,
	-1236538675,
	-1247288478,
	-1257991320,
	-1268646800,
	-1279254516,
	-1289814068,
	-1300325060,
	-1310787095,
	-1321199781,
	-1331562723,
	-1341875533,
	-1352137822,
	-1362349204,
	-1372509294,
	-1382617710,
	-1392674072,
	-1402678000,
	-1412629117,
	-1422527051,
	-1432371426,
	-1442161874,
	-1451898025,
	-1461579514,
	-1471205974,
	-1480777044,
	-1490292364,
	-1499751576,
	-1509154322,
	-1518500250,
	-1527789007,
	-1537020244,
	-1546193612,
	-1555308768,
	-1564365367,
	-1573363068,
	-1582301533,
	-1591180426,
	-1599999411,
	-1608758157,
	-1617456335,
	-1626093616,
	-1634669676,
	-1643184191,
	-1651636841,
	-1660027308,
	-1668355276,
	-1676620432,
	-1684822463,
	-1692961062,
	-1701035922,
	-1709046739,
	-1716993211,
	-1724875040,
	-1732691928,
	-1740443581,
	-1748129707,
	-1755750017,
	-1763304224,
	-1770792044,
	-1778213194,
	-1785567396,
	-1792854372,
	-1800073849,
	-1807225553,
	-1814309216,
	-1821324572,
	-1828271356,
	-1835149306,
	-1841958164,
	-1848697674,
	-1855367581,
	-1861967634,
	-1868497586,
	-1874957189,
	-1881346202,
	-1887664383,
	-1893911494,
	-1900087301,
	-1906191570,
	-1912224073,
	-1918184581,
	-1924072871,
	-1929888720,
	-1935631910,
	-1941302225,
	-1946899451,
	-1952423377,
	-1957873796,
	-1963250501,
	-1968553292,
	-1973781967,
	-1978936331,
	-1984016189,
	-1989021350,
	-1993951625,
	-1998806829,
	-2003586779,
	-2008291295,
	-2012920201,
	-2017473321,
	-2021950484,
	-2026351522,
	-2030676269,
	-2034924562,
	-2039096241,
	-2043191150,
	-2047209133,
	-2051150040,
	-2055013723,
	-2058800036,
	-2062508835,
	-2066139983,
	-2069693342,
	-2073168777,
	-2076566160,
	-2079885360,
	-2083126254,
	-2086288720,
	-2089372638,
	-2092377892,
	-2095304370,
	-2098151960,
	-2100920556,
	-2103610054,
	-2106220352,
	-2108751352,
	-2111202959,
	-2113575080,
	-2115867626,
	-2118080511,
	-2120213651,
	-2122266967,
	-2124240380,
	-2126133817,
	-2127947206,
	-2129680480,
	-2131333572,
	-2132906420,
	-2134398966,
	-2135811153,
	-2137142927,
	-2138394240,
	-2139565043,
	-2140655293,
	-2141664948,
	-2142593971,
	-2143442326,
	-2144209982,
	-2144896910,
	-2145503083,
	-2146028480,
	-2146473080,
	-2146836866,
	-2147119825,
	-2147321946,
	-2147443222,
	-2147483647,
	-2147443222,
	-2147321946,
	-2147119825,
	-2146836866,
	-2146473080,
	-2146028480,
	-2145503083,
	-2144896910,
	-2144209982,
	-2143442326,
	-2142593971,
	-2141664948,
	-2140655293,
	-2139565043,
	-2138394240,
	-2137142927,
	-2135811153,
	-2134398966,
	-2132906420,
	-2131333572,
	-2129680480,
	-2127947206,
	-2126133817,
	-2124240380,
	-2122266967,
	-2120213651,
	-2118080511,
	-2115867626,
	-2113575080,
	-2111202959,
	-2108751352,
	-2106220352,
	-2103610054,
	-2100920556,
	-2098151960,
	-2095304370,
	-2092377892,
	-2089372638,
	-2086288720,
	-2083126254,
	-2079885360,
	-2076566160,
	-2073168777,
	-2069693342,
	-2066139983,
	-2062508835,
	-2058800036,
	-2055013723,
	-2051150040,
	-2047209133,
	-2043191150,
	-2039096241,
	-2034924562,
	-2030676269,
	-2026351522,
	-2021950484,
	-2017473321,
	-2012920201,
	-2008291295,
	-2003586779,
	-1998806829,
	-1993951625,
	-1989021350,
	-1984016189,
	-1978936331,
	-1973781967,
	-1968553292,
	-1963250501,
	-1957873796,
	-1952423377,
	-1946899451,
	-1941302225,
	-1935631910,
	-1929888720,
	-1924072871,
	-1918184581,
	-1912224073,
	-1906191570,
	-1900087301,
	-1893911494,
	-1887664383,
	-1881346202,
	-1874957189,
	-1868497586,
	-1861967634,
	-1855367581,
	-1848697674,
	-1841958164,
	-1835149306,
	-1828271356,
	-1821324572,
	-1814309216,
	-1807225553,
	-1800073849,
	-1792854372,
	-1785567396,
	-1778213194,
	-1770792044,
	-1763304224,
	-1755750017,
	-1748129707,
	-1740443581,
	-1732691928,
	-1724875040,
	-1716993211,
	-1709046739,
	-1701035922,
	-1692961062,
	-1684822463,
	-1676620432,
	-1668355276,
	-1660027308,
	-1651636841,
	-1643184191,
	-1634669676,
	-1626093616,
	-1617456335,
	-1608758157,
	-1599999411,
	-1591180426,
	-1582301533,
	-1573363068,
	-1564365367,
	-1555308768,
	-1546193612,
	-1537020244,
	-1527789007,
	-1518500250,
	-1509154322,
	-1499751576,
	-1490292364,
	-1480777044,
	-1471205974,
	-1461579514,
	-1451898025,
	-1442161874,
	-1432371426,
	-1422527051,
	-1412629117,
	-1402678000,
	-1392674072,
	-1382617710,
	-1372509294,
	-1362349204,
	-1352137822,
	-1341875533,
	-1331562723,
	-1321199781,
	-1310787095,
	-1300325060,
	-1289814068,
	-1279254516,
	-1268646800,
	-1257991320,
	-1247288478,
	-1236538675,
	-1225742318,
	-1214899813,
	-1204011567,
	-1193077991,
	-1182099496,
	-1171076495,
	-1160009405,
	-1148898640,
	-1137744621,
	-1126547765,
	-1115308496,
	-1104027237,
	-1092704411,
	-1081340445,
	-1069935768,
	-1058490808,
	-1047005996,
	-1035481766,
	-1023918550,
	-1012316784,
	-1000676905,
	-988999351,
	-977284562,
	-965532978,
	-953745043,
	-941921200,
	-930061894,
	-918167572,
	-906238681,
	-894275671,
	-882278992,
	-870249095,
	-858186435,
	-846091463,
	-833964638,
	-821806413,
	-809617249,
	-797397602,
	-785147934,
	-772868706,
	-760560380,
	-748223418,
	-735858287,
	-723465451,
	-711045377,
	-698598533,
	-686125387,
	-673626408,
	-661102068,
	-648552838,
	-635979190,
	-623381598,
	-610760536,
	-598116479,
	-585449903,
	-572761285,
	-560051104,
	-547319836,
	-534567963,
	-521795963,
	-509004318,
	-496193509,
	-483364019,
	-470516330,
	-457650927,
	-444768294,
	-431868915,
	-418953276,
	-406021865,
	-393075166,
	-380113669,
	-367137861,
	-354148230,
	-341145265,
	-328129457,
	-315101295,
	-302061269,
	-289009871,
	-275947592,
	-262874923,
	-249792358,
	-236700388,
	-223599506,
	-210490206,
	-197372981,
	-184248325,
	-171116733,
	-157978697,
	-144834714,
	-131685278,
	-118530885,
	-105372028,
	-92209205,
	-79042909,
	-65873638,
	-52701887,
	-39528151,
	-26352928,
	-13176712,
	0,
	13176712,
	26352928,
	39528151,
	52701887,
	65873638,
	79042909,
	92209205,
	105372028,
	118530885,
	131685278,
	144834714,
	157978697,
	171116733,
	184248325,
	197372981,
	210490206,
	223599506,
	236700388,
	249792358,
	262874923,
	275947592,
	289009871,
	302061269,
	315101295,
	328129457,
	341145265,
	354148230,
	367137861,
	380113669,
	393075166,
	406021865,
	418953276,
	431868915,
	444768294,
	457650927,
	470516330,
	483364019,
	496193509,
	509004318,
	521795963,
	534567963,
	547319836,
	560051104,
	572761285,
	585449903,
	598116479,
	610760536,
	623381598,
	635979190,
	648552838,
	661102068,
	673626408,
	686125387,
	698598533,
	711045377,
	723465451,
	735858287,
	748223418,
	760560380,
	772868706,
	785147934,
	797397602,
	809617249,
	821806413,
	833964638,
	846091463,
	858186435,
	870249095,
	882278992,
	894275671,
	906238681,
	918167572,
	930061894,
	941921200,
	953745043,
	965532978,
	977284562,
	988999351,
	1000676905,
	1012316784,
	1023918550,
	1035481766,
	1047005996,
	1058490808,
	1069935768,
	1081340445,
	1092704411,
	1104027237,
	1115308496,
	1126547765,
	1137744621,
	1148898640,
	1160009405,
	1171076495,
	1182099496,
	1193077991,
	1204011567,
	1214899813,
	1225742318,
	1236538675,
	1247288478,
	1257991320,
	1268646800,
	1279254516,
	1289814068,
	1300325060,
	1310787095,
	1321199781,
	1331562723,
	1341875533,
	1352137822,
	1362349204,
	1372509294,
	1382617710,
	1392674072,
	1402678000,
	1412629117,
	1422527051,
	1432371426,
	1442161874,
	1451898025,
	1461579514,
	1471205974,
	1480777044,
	1490292364,
	1499751576,
	1509154322,
	1518500250,
	1527789007,
	1537020244,
	1546193612,
	1555308768,
	1564365367,
	1573363068,
	1582301533,
	1591180426,
	1599999411,
	1608758157,
	1617456335,
	1626093616,
	1634669676,
	1643184191,
	1651636841,
	1660027308,
	1668355276,
	1676620432,
	1684822463,
	1692961062,
	1701035922,
	1709046739,
	1716993211,
	1724875040,
	1732691928,
	1740443581,
	1748129707,
	1755750017,
	1763304224,
	1770792044,
	1778213194,
	1785567396,
	1792854372,
	1800073849,
	1807225553,
	1814309216,
	1821324572,
	1828271356,
	1835149306,
	1841958164,
	1848697674,
	1855367581,
	1861967634,
	1868497586,
	1874957189,
	1881346202,
	1887664383,
	1893911494,
	1900087301,
	1906191570,
	1912224073,
	1918184581,
	1924072871,
	1929888720,
	1935631910,
	1941302225,
	1946899451,
	1952423377,
	1957873796,
	1963250501,
	1968553292,
	1973781967,
	1978936331,
	1984016189,
	1989021350,
	1993951625,
	1998806829,
	2003586779,
	2008291295,
	2012920201,
	2017473321,
	2021950484,
	2026351522,
	2030676269,
	2034924562,
	2039096241,
	2043191150,
	2047209133,
	2051150040,
	2055013723,
	2058800036,
	2062508835,
	2066139983,
	2069693342,
	2073168777,
	2076566160,
	2079885360,
	2083126254,
	2086288720,
	2089372638,
	2092377892,
	2095304370,
	2098151960,
	2100920556,
	2103610054,
	2106220352,
	2108751352,
	2111202959,
	2113575080,
	2115867626,
	2118080511,
	2120213651,
	2122266967,
	2124240380,
	2126133817,
	2127947206,
	2129680480,
	2131333572,
	2132906420,
	2134398966,
	2135811153,
	2137142927,
	2138394240,
	2139565043,
	2140655293,
	2141664948,
	2142593971,
	2143442326,
	2144209982,
	2144896910,
	2145503083,
	2146028480,
	2146473080,
	2146836866,
	2147119825,
	2147321946,
	2147443222,
	2147483647,
	2147443222,
	2147321946,
	2147119825,
	2146836866,
	2146473080,
	2146028480,
	2145503083,
	2144896910,
	2144209982,
	2143442326,
	2142593971,
	2141664948,
	2140655293,
	2139565043,
	2138394240,
	2137142927,
	2135811153,
	2134398966,
	2132906420,
	2131333572,
	2129680480,
	2127947206,
	2126133817,
	2124240380,
	2122266967,
	2120213651,
	2118080511,
	2115867626,
	2113575080,
	2111202959,
	2108751352,
	2106220352,
	2103610054,
	2100920556,
	2098151960,
	2095304370,
	2092377892,
	2089372638,
	2086288720,
	2083126254,
	2079885360,
	2076566160,
	2073168777,
	2069693342,
	2066139983,
	2062508835,
	2058800036,
	2055013723,
	2051150040,
	2047209133,
	2043191150,
	2039096241,
	2034924562,
	2030676269,
	2026351522,
	2021950484,
	2017473321,
	2012920201,
	2008291295,
	2003586779,
	1998806829,
	1993951625,
	1989021350,
	1984016189,
	1978936331,
	1973781967,
	1968553292,
	1963250501,
	1957873796,
	1952423377,
	1946899451,
	1941302225,
	1935631910,
	1929888720,
	1924072871,
	1918184581,
	1912224073,
	1906191570,
	1900087301,
	1893911494,
	1887664383,
	1881346202,
	1874957189,
	1868497586,
	1861967634,
	1855367581,
	1848697674,
	1841958164,
	1835149306,
	1828271356,
	1821324572,
	1814309216,
	1807225553,
	1800073849,
	1792854372,
	1785567396,
	1778213194,
	1770792044,
	1763304224,
	1755750017,
	1748129707,
	1740443581,
	1732691928,
	1724875040,
	1716993211,
	1709046739,
	1701035922,
	1692961062,
	1684822463,
	1676620432,
	1668355276,
	1660027308,
	1651636841,
	1643184191,
	1634669676,
	1626093616,
	1617456335,
	1608758157,
	1599999411,
	1591180426,
	1582301533,
	1573363068,
	1564365367,
	1555308768,
	1546193612,
	1537020244,
	1527789007,
	1518500250,
	1509154322,
	1499751576,
	1490292364,
	1480777044,
	1471205974,
	1461579514,
	1451898025,
	1442161874,
	1432371426,
	1422527051,
	1412629117,
	1402678000,
	1392674072,
	1382617710,
	1372509294,
	1362349204,
	1352137822,
	1341875533,
	1331562723,
	1321199781,
	1310787095,
	1300325060,
	1289814068,
	1279254516,
	1268646800,
	1257991320,
	1247288478,
	1236538675,
	1225742318,
	1214899813,
	1204011567,
	1193077991,
	1182099496,
	1171076495,
	1160009405,
	1148898640,
	1137744621,
	1126547765,
	1115308496,
	1104027237,
	1092704411,
	1081340445,
	1069935768,
	1058490808,
	1047005996,
	1035481766,
	1023918550,
	1012316784,
	1000676905,
	988999351,
	977284562,
	965532978,
	953745043,
	941921200,
	930061894,
	918167572,
	906238681,
	894275671,
	882278992,
	870249095,
	858186435,
	846091463,
	833964638,
	821806413,
	809617249,
	797397602,
	785147934,
	772868706,
	760560380,
	748223418,
	735858287,
	723465451,
	711045377,
	698598533,
	686125387,
	673626408,
	661102068,
	648552838,
	635979190,
	623381598,
	610760536,
	598116479,
	585449903,
	572761285,
	560051104,
	547319836,
	534567963,
	521795963,
	509004318,
	496193509,
	483364019,
	470516330,
	457650927,
	444768294,
	431868915,
	418953276,
	406021865,
	393075166,
	380113669,
	367137861,
	354148230,
	341145265,
	328129457,
	315101295,
	302061269,
	289009871,
	275947592,
	262874923,
	249792358,
	236700388,
	223599506,
	210490206,
	197372981,
	184248325,
	171116733,
	157978697,
	144834714,
	131685278,
	118530885,
	105372028,
	92209205,
	79042909,
	65873638,
	52701887,
	39528151,
	26352928,
	13176712,
};

#endif
